#include"./httplib.h"

using namespace httplib;

void HelloBit(const Request &req,Response &rsp){
	rsp.body="Hello Bit!";
	rsp.status=200;//可以忽略，默认httplib会加上一个200的状态码
}
void Numbers(const Request &req,Response &rsp){
	//matches:存放正则表达式匹配的规则数据 /number/123 matches[0]="/number/123",matches[1]="123"
	std::string num=req.matches[1];
	rsp.set_content(num,"text/plain");//向rsp.body里边添加数据，并且设置Content-Type类型
	rsp.status=200;
}
void Multipart(const Request &req,Response &rsp){
	if(req.has_file("file1")==false){
		rsp.status=400;
		return;
	}
	MultipartFormData file=req.get_file_value("file1");
	std::cout<<file.filename<<std::endl;//区域文件名称
	std::cout<<file.content<<std::endl;//区域文件内容
	rsp.status=200;
}
int main(){
	Server server;

	//设置一个静态资源根目录--为当前目录下的www目录
	server.set_mount_point("/","./www");

	//添加请求-处理函数映射信息
	server.Get("/hi",HelloBit);
	//正则表达式中：\d表示数字，+表示匹配前边的字符一次或多次，()表示单独捕捉数据 /numbers/123
	server.Get("/numbers/(\\d+)",Numbers);
	server.Post("/multipart",Multipart);
	server.listen("0.0.0.0",9090);
	return 0;
}
